

```{r r_setup, include = FALSE}
## initial settings
knitr::opts_chunk$set(
  comment = NA,
  echo = TRUE,
  error = TRUE,
  cache = FALSE,
  message = FALSE,

  dpi = 96,
  warning = FALSE
)

## width to use when printing tables etc.
options(
  width = 250,
  scipen = 100,
  max.print = 5000,
  stringsAsFactors = FALSE
)

## make all required libraries available by loading radiant package if needed
if (is.null(shiny::getDefaultReactiveDomain())) library(radiant)

## include code to load the data you require
## for interactive use attach the r_data environment
# attach(r_data)
```

<style>
.btn, .form-control, pre, code, pre code {
  border-radius: 4px;
}
.table {
  width: auto;
}
ul, ol {
  padding-left: 18px;
}
code, pre, pre code {
  overflow: auto;
  white-space: pre;
  word-wrap: normal;
}
code {
  color: #c7254e;
  background-color: #f9f2f4;
}
pre {
  background-color: #ffffff;
}
</style>

## Radiant variables and tests
---
on Rstudio
```
setwd(paste0(getwd(),'/radiant')

penguins=penguins

AirPassengers=tibble(t=1:length(AirPassengers), y=c(AirPassengers)

library(radiant)
radiant()
```
---

### see original dataset
![](data-manage-screenshot1.png)
![](data-manage-screenshot2.png)
![](data-manage-screenshot3.png)


### fix datasets and add dummy factor variable 

![](data-transform-screenshot1.png)
![](data-transform-screenshot2.png)


### see prepared dataset

![](data-manage-screenshot4.png)

![](data-view-screenshot1.png)


### 1 qualitative variable

![](data-pivot-screenshot1.png)


### 1 quantitative variable

![](data-explore-screenshot1.png)

![](data-visualize-screenshot01.png)

![](data-visualize-screenshot02.png)

![](data-visualize-screenshot03.png)


### time series

![](data-visualize-screenshot04.png)


### 2 qualitative

![](data-pivot-screenshot2.png)
![](data-pivot-screenshot3.png)
![](data-pivot-screenshot4.png)


### 2 quantitative

![](data-explore-screenshot2.png)
![](data-visualize-screenshot05.png)


### 1 qualitative and 1 quantitative

![](data-pivot-screenshot5.png)
![](data-explore-screenshot3.png)

![](data-visualize-screenshot06.png)
![](data-visualize-screenshot07.png)
![](data-visualize-screenshot08.png)


### 1 qualitative and 2 quantitative

![](data-pivot-screenshot6.png)
![](data-explore-screenshot4.png)
![](data-visualize-screenshot09.png)
![](data-visualize-screenshot10.png)
![](data-visualize-screenshot11.png)


### 2 qualitative and 1 quantitative

![](data-explore-screenshot5.png)
![](data-visualize-screenshot12.png)
![](data-visualize-screenshot13.png)


### standardize quantitative
![](data-transform-screenshot3.png)



### compare quatitative variable to constant test

![](single-mean-summary-screenshot1.png)
![](single-mean-plot-screenshot1.png)


### compare quantitative variable among groups test 

![](compare-means-summary-screenshot1.png)
![](compare-means-plot-screenshot1.png)


### compare qualitative proportion to constant test

![](single-proportion-summary-screenshot1.png)
![](single-proportion-summary-screenshot2.png)
![](single-proportion-plot-screenshot1.png)


### compare qualitative proportio among groups test 

![](compare-proportions-summary-screenshot1.png)
![](compare-proportions-plot-screenshot1.png)


### goodness of fit test for 1 qualitative variable distribution

![](goodness-of-fit-summary-screenshot1.png)
![](goodness-of-fit-plot-screenshot1.png)

![](goodness-of-fit-summary-screenshot2.png)
![](goodness-of-fit-plot-screenshot2.png)


### independecy test for 2 qualitative variable cross table 

![](cross-tabs-summary-screenshot1.png)
![](cross-tabs-plot-screenshot1.png)


### correlations and their test

![](correlation-summary-screenshot1.png)
![](correlation-plot-screenshot1.png)
